﻿/*
 * 由SharpDevelop创建。
 * 用户： lucifer
 * 日期: 2011/3/17
 * 时间: 21:59
 * 
 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
 */
using System;
using System.Collections.Generic;

namespace Yidu.Persister.Mapping {
    /// <summary>
    /// 生产可能的数据库名称，从实体到数据库
    /// </summary>
    public interface IDbNameGuesser {

        /// <summary>
        /// 生成可能的表名称
        /// </summary>
        /// <param name="entryType">实体类型</param>
        /// <returns></returns>
        List<string> getPossibleTableNames(Type entryType);

        /// <summary>
        /// 生成可能的表名称
        /// </summary>
        /// <param name="entryName">实体名称</param>
        /// <returns></returns>
        List<string> getPossibleTableNames(string entryName);

        /// <summary>
        /// 生产可能的字段名称
        /// </summary>
        /// <param name="propertyName">属性名称</param>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        List<string> getPossibleColumnNames(string propertyName, List<Dictionary<string, object>> columnNameList);

        /// <summary>
        /// 获取表字段信息
        /// </summary>
        /// <param name="tableName">表名称</param>
        /// <returns></returns>
        List<Dictionary<string, object>> getTableFields(string tableName);

        List<string> GetTablePrimaryKeyList(Type entryType);


    }
}
